﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Business_Entity;
using Business_Logic;
using System.Globalization;
using System.Data;
namespace Caja
{
    public partial class frmProgramarTurno : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack) {
                ListarAnios();
                ListarSemanas();
                ListarMeses();
                CrearTablaProgramacion();
            }
        }

        private void ListarAnios() {

            for (int i = DateTime.Now.Year-5; i < DateTime.Now.Year ; i++)
                ddlAnio.Items.Add(i.ToString()); 

            for (int i = DateTime.Now.Year; i <  DateTime.Now.Year+5; i++)
                ddlAnio.Items.Add(i.ToString());

            ddlAnio.Text = DateTime.Now.Year.ToString();
           
        }

        private void ListarCajeros() {
            
            
        }

        private void ListarSemanas() {

            for (int i = 1; i < 8; i++)
            {
                ddlSemana.Items.Add(string.Format("Semana {0}",i));
            }
        }


        private void ListarMeses()
        {

            for (int i = 1; i < 13; i++)
            {

                ddlMes.Items.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i));
            }
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            dtProgramacion = (DataTable) Session["tablaProgramacion"];
            DataRow iFila = dtProgramacion.NewRow();
            iFila[0] = dtProgramacion.Rows.Count+1;
             dtProgramacion.Rows.Add(iFila);
            Session["tablaProgramacion"] = dtProgramacion;
            gvProgramacionTurnos.DataSource = dtProgramacion;
            gvProgramacionTurnos.DataBind();
                    

        }


        private DataTable dtProgramacion = new DataTable();
        private void CrearTablaProgramacion() {
            dtProgramacion.Columns.Add("Item");
            Session["tablaProgramacion"] = dtProgramacion;
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                
            }
            catch (Exception ex)
            {
                lblMsgError.Text = ex.Message;
            }

        }
        public void LimpiarForm()
        {
           
        }

        protected void btnRegistrarPago_Click(object sender, EventArgs e)
        {
            try
            {
               
            }
            catch (Exception ex)
            {
                lblMsgError.Text = ex.Message;
            }
        }

        protected void gvProgramacionTurnos_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                List<BE_Cajero> objListadoCajero = new List<BE_Cajero>();
                BL_Cajero objCajeroBL = new BL_Cajero();

                DropDownList ddlCajeroL = (DropDownList)e.Row.FindControl("ddlCajeroL");

                objListadoCajero = objCajeroBL.ObtenerCajeros();
                ddlCajeroL.DataSource = objListadoCajero;
                ddlCajeroL.DataValueField = "IdCajero";
                ddlCajeroL.DataTextField = "Nombres";
                ddlCajeroL.DataBind();


                DropDownList ddlCajeroM = (DropDownList)e.Row.FindControl("ddlCajeroM");

                objListadoCajero = objCajeroBL.ObtenerCajeros();
                ddlCajeroM.DataSource = objListadoCajero;
                ddlCajeroM.DataValueField = "IdCajero";
                ddlCajeroM.DataTextField = "Nombres";
                ddlCajeroM.DataBind();

                DropDownList ddlCajeroMi = (DropDownList)e.Row.FindControl("ddlCajeroMi");

                objListadoCajero = objCajeroBL.ObtenerCajeros();
                ddlCajeroMi.DataSource = objListadoCajero;
                ddlCajeroMi.DataValueField = "IdCajero";
                ddlCajeroMi.DataTextField = "Nombres";
                ddlCajeroMi.DataBind();

                DropDownList ddlCajeroJ = (DropDownList)e.Row.FindControl("ddlCajeroJ");

                objListadoCajero = objCajeroBL.ObtenerCajeros();
                ddlCajeroJ.DataSource = objListadoCajero;
                ddlCajeroJ.DataValueField = "IdCajero";
                ddlCajeroJ.DataTextField = "Nombres";
                ddlCajeroJ.DataBind();

                DropDownList ddlCajeroV = (DropDownList)e.Row.FindControl("ddlCajeroV");

                objListadoCajero = objCajeroBL.ObtenerCajeros();
                ddlCajeroV.DataSource = objListadoCajero;
                ddlCajeroV.DataValueField = "IdCajero";
                ddlCajeroV.DataTextField = "Nombres";
                ddlCajeroV.DataBind();

                DropDownList ddlCajeroS = (DropDownList)e.Row.FindControl("ddlCajeroS");

                objListadoCajero = objCajeroBL.ObtenerCajeros();
                ddlCajeroS.DataSource = objListadoCajero;
                ddlCajeroS.DataValueField = "IdCajero";
                ddlCajeroS.DataTextField = "Nombres";
                ddlCajeroS.DataBind();

                DropDownList ddlCajeroD = (DropDownList)e.Row.FindControl("ddlCajeroD");

                objListadoCajero = objCajeroBL.ObtenerCajeros();
                ddlCajeroD.DataSource = objListadoCajero;
                ddlCajeroD.DataValueField = "IdCajero";
                ddlCajeroD.DataTextField = "Nombres";
                ddlCajeroD.DataBind();
            }
        }

        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
               
                           

                foreach(GridViewRow row in gvProgramacionTurnos.Rows)
        {
        
                BE_Programacion objProgramacionBE = new BE_Programacion();
                BL_Programacion objProgramacionBL = new BL_Programacion();

                DropDownList ddlTurno = (DropDownList)row.FindControl("ddlTurno");
                DropDownList ddlCajeroL = (DropDownList)row.FindControl("ddlCajeroL");

                objProgramacionBE.Turno = ddlTurno.SelectedValue.ToString();
                objProgramacionBE.IdCajero = ddlCajeroL.SelectedValue.ToString();
                objProgramacionBE.Dia = 1;
                objProgramacionBL.RegistrarProgramacion(objProgramacionBE);

                //--------------------------------------
                objProgramacionBL = new BL_Programacion();
                objProgramacionBE = new BE_Programacion();

                DropDownList ddlCajeroM = (DropDownList)row.FindControl("ddlCajeroM");

                objProgramacionBE.Turno = ddlTurno.SelectedValue.ToString();
                objProgramacionBE.IdCajero = ddlCajeroM.SelectedValue.ToString();
                objProgramacionBE.Dia = 2;
                objProgramacionBL.RegistrarProgramacion(objProgramacionBE);
            //--------------------------------------

                //--------------------------------------
                objProgramacionBL = new BL_Programacion();
                objProgramacionBE = new BE_Programacion();

                DropDownList ddlCajeroMi = (DropDownList)row.FindControl("ddlCajeroMi");

                objProgramacionBE.Turno = ddlTurno.SelectedValue.ToString();
                objProgramacionBE.IdCajero = ddlCajeroMi.SelectedValue.ToString();
                objProgramacionBE.Dia = 3;
                objProgramacionBL.RegistrarProgramacion(objProgramacionBE);
            //--------------------------------------

                //--------------------------------------
                objProgramacionBL = new BL_Programacion();
                objProgramacionBE = new BE_Programacion();

                DropDownList ddlCajeroJ = (DropDownList)row.FindControl("ddlCajeroJ");

                objProgramacionBE.Turno = ddlTurno.SelectedValue.ToString();
                objProgramacionBE.IdCajero = ddlCajeroJ.SelectedValue.ToString();
                objProgramacionBE.Dia = 4;
                objProgramacionBL.RegistrarProgramacion(objProgramacionBE);
            //--------------------------------------

                //--------------------------------------
                objProgramacionBL = new BL_Programacion();
                objProgramacionBE = new BE_Programacion();

                DropDownList ddlCajeroV = (DropDownList)row.FindControl("ddlCajeroV");

                objProgramacionBE.Turno = ddlTurno.SelectedValue.ToString();
                objProgramacionBE.IdCajero = ddlCajeroV.SelectedValue.ToString();
                objProgramacionBE.Dia = 5;
                objProgramacionBL.RegistrarProgramacion(objProgramacionBE);
            //--------------------------------------

                //--------------------------------------
                objProgramacionBL = new BL_Programacion();
                objProgramacionBE = new BE_Programacion();

                DropDownList ddlCajeroS = (DropDownList)row.FindControl("ddlCajeroS");

                objProgramacionBE.Turno = ddlTurno.SelectedValue.ToString();
                objProgramacionBE.IdCajero = ddlCajeroS.SelectedValue.ToString();
                objProgramacionBE.Dia = 6;
                objProgramacionBL.RegistrarProgramacion(objProgramacionBE);
            //--------------------------------------

                //--------------------------------------
                objProgramacionBL = new BL_Programacion();
                objProgramacionBE = new BE_Programacion();

                DropDownList ddlCajeroD = (DropDownList)row.FindControl("ddlCajeroD");

                objProgramacionBE.Turno = ddlTurno.SelectedValue.ToString();
                objProgramacionBE.IdCajero = ddlCajeroD.SelectedValue.ToString();
                objProgramacionBE.Dia = 7;
                objProgramacionBL.RegistrarProgramacion(objProgramacionBE);
            //--------------------------------------
                lblMsgError.Text = "Registro Satisfactorio";

}

            }
            catch (Exception ex)
            {
                lblMsgError.Text = ex.Message;
            }
        }

    
    }
}